package com.selune.online.ordering.system.project.api.service.tenant;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.selune.online.ordering.system.project.api.base.response.Response;
import com.selune.online.ordering.system.project.api.pojo.goods.dto.GoodsDTO;
import com.selune.online.ordering.system.project.api.pojo.goods.dto.GoodsSearchDTO;
import com.selune.online.ordering.system.project.api.pojo.goods.dto.GoodsUpdateDTO;
import com.selune.online.ordering.system.project.api.pojo.goods.vo.GoodsDetailVO;
import java.util.List;

/**
 * 商户商品管理接口
 *
 * @author xiaoyp
 * @date 2020/2/19
 */

public interface ITenantGoodsService {
	
	/**
	 * 添加商品信息
	 *
	 * @param goodsDTO 商品信息DTO
	 * @return True/False
	 */
	Response<Boolean> saveGoods(GoodsDTO goodsDTO);
	
	/**
	 * 修改商品信息
	 *
	 * @param goodsId        商品id
	 * @param goodsUpdateDTO 商品修改信息DTO
	 * @return True/False
	 */
	Response<Boolean> updateGoods(Long goodsId, GoodsUpdateDTO goodsUpdateDTO);
	
	/**
	 * 获取商品详情信息
	 *
	 * @param goodsId 商品id
	 * @return GoodsDetailVO
	 */
	Response<GoodsDetailVO> getGoodsDetail(Long goodsId);
	
	/**
	 * 商品上架
	 *
	 * @param goodsId 商品id
	 * @return True/False
	 */
	Response<Boolean> onSaleGoods(Long goodsId);
	
	/**
	 * 商品下架
	 *
	 * @param goodsId 商品id
	 * @return True/False
	 */
	Response<Boolean> offSaleGoods(Long goodsId);
	
	/**
	 * 商品列表
	 *
	 * @param goodsSearchDTO 商品查询条件DTO
	 * @return 商品列表
	 */
	Response<List<GoodsDetailVO>> listGoods(GoodsSearchDTO goodsSearchDTO);
	
	/**
	 * 商品分页
	 *
	 * @param current          当前页
	 * @param size             页大小
	 * @param goodsSearchDTO 商品查询条件
	 * @return 商品分页
	 */
	Response<Page<GoodsDetailVO>> pageGoods(Integer current, Integer size, GoodsSearchDTO goodsSearchDTO);
}
